package com.ruoyi.reportInfo.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 物流企业专线运营信息业务对象 industrial_logistics_company_line_operation
 *
 * @author yangzhen
 * @date 2025-11-24
 */

@Data
@EqualsAndHashCode(callSuper = true)
@Schema(name = "IndustrialLogisticsCompanyLineOperationBo", description = "物流企业专线运营信息业务对象")
public class IndustrialLogisticsCompanyLineOperationBo extends BaseEntity {

    /**
     * 主键id
     */
    @Schema(description = "主键id")
    @NotBlank(message = "主键id不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 场站名称
     */
    @Schema(description = "场站名称")
    @NotBlank(message = "场站名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String companyId;

    /**
     * 起点
     */
    @Schema(description = "起点")
    @NotBlank(message = "起点不能为空", groups = { AddGroup.class, EditGroup.class })
    private String startPoint;

    /**
     * 终点
     */
    @Schema(description = "终点")
    @NotBlank(message = "终点不能为空", groups = { AddGroup.class, EditGroup.class })
    private String endPoint;

    /**
     * 填报日期
     */
    @Schema(description = "填报日期")
    @NotNull(message = "填报日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date reportDate;

    /**
     * 运货量
     */
    @Schema(description = "运货量")
    @NotNull(message = "运货量不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal freightVolume;

    /**
     * 数据收集时间
     */
    @Schema(description = "数据收集时间")
    @NotNull(message = "数据收集时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date reportCollectDate;

    @Schema(description = "填报周期")
    private String reportCycle;
}
